package com.hydra.framework.event.fw;

/**
 * Created by Hydra.
 */
public enum FWEventActionKey {

    //常用的几种事件
    FWAction_User_Db_Change_Before(false),
    FWAction_User_Db_Changed(false),

    FWAction_On_Launch_PreLoad_Module_Finished(false),

    FWAction_On_Login_Success(false, Long.class), //arg1: uid
    FWAction_On_Login_Failed(false, String.class, Integer.class),//arg1: reason, arg2: code
    FWAction_On_Login_Cancelled(false),

    FWAction_On_Logout(false, String.class); //arg1: logout reason

    public final boolean sticky;

    public final Class<?>[] argClassArrays;

    /**
     *
     * @param argClassArrays 这个目前没什么实际作用，就是在定义事件时，
     *                       显式给出事件的参数，让使用事件者可以清晰知道参数类型
     */
    FWEventActionKey(boolean sticky, Class<?>...argClassArrays) {
        this.sticky = sticky;
        this.argClassArrays = argClassArrays;
    }
}
